As computers become more commonplace in today's society, there is an ever increasing need for the storage of very large amounts of data and the fast access of such stored data. In some instances, companies manage huge amounts of data spread over many data centers on multiple continents. To house and manage this data, several types of large capacity storage nodes have thus been developed. Examples of high-capacity data storage systems involve physical devices (such as tape drives, optical storage systems, read only memory (ROM) systems, random access memory (RAM) systems, flash memory systems, and the like) that are grouped together physically or virtually over a network (such as in a storage area network (SAN) nodes or network attached storage (NAS) nodes). Virtual storage nodes are generally accessed remotely through a network to store and retrieve data utilized by executing applications.
In any storage system, there are often trade-offs between performance speed, storing capacity, and speed of retrieval of the data that is considered when instantiating the distributed storage system. In addition, storage networks may include thousands of storage devices or nodes that may frequently suffer hardware failures. Without proper storage precautions, such hardware failures may result in lost data. Thus, administrators of distributed storage networks often balance performance efficiency of the storage network against robustness of the system.